In one class of packet switching systems, as each digital data message enters the system, a route through the system to the message destination is determined and a virtual connection is set up by storing at each switching node in the route the information defining the path that the message takes through the node. The entering message is assembled into fixed length packets and each packet is formatted into a header portion and a data portion. The header portion contains information that is unique to the virtual channel, which header information is used by each node to direct the packet therethrough to the next node or to the destination line or channel.
To provide for growth, it is advantageous to arrange packet nodes or switches in modular form. A general modular form is shown in U.S. Pat. No. 4,032,899 issued to C. J. Jenny and K. A. Kuemmerle on June 28, 1977. The Jenny et al arrangement provides a common data bus which interconnects at least one control circuit with a plurality of input/output modules. Each module accommodates a plurality of lines or channels, each channel being reserved by an incoming or outgoing message. Accordingly, each incoming packet on a particular one of the incoming lines of a particular one of an input/output module is passed by the module via the data bus to the control circuit which directs the packet via the bus to an outgoing line of a module. Both the output module and the outgoing line are identified by information stored in the control circuit to define the path to be taken by the packets from that particular incoming line.
A specific control circuit for processing packets through a node is disclosed in U.S. Pat. No. 3,979,733 which issued to me on Sept. 7, 1976. The control circuit in my patent functions to move the data packet from incoming channel to outgoing channel and to change or modify the header information to designate the new channel that the packet takes on its journey through the system. In accordance therewith, storage locations of a random access memory are accessed by the packet header which identifies the old (or incoming) channel number, which storage locations contain the new (or outgoing) channel number. The control circuit substitutes the old channel number in the header with the new number accessed from the memory, which new number will be used to direct the packet to the correspondingly numbered outgoing channel.
New information is written by the node processor in the random access memory each time a virtual connection is set up and taken down. Information may be read out of the memory by processors monitoring the system operation or providing housekeeping functions such as reconfiguration of the network. The memory may be advantageously accessed by special or predetermined numbers or words in the packet header followed by control data containing a "read" or "write" command word, an address word identifying the memory storage locations of the information to be accessed and finally data words to be written into the memory if a write operation is desired. Conventionally, decoding circuits recognize the special header words and enable the address words to then access the memory. In a modular system, however, where system growth has to be accommodated, these special words must be periodically changed, requiring changes in the decoding circuits.
It is an object of this invention to write information into a control memory of a packet switch. It is a companion object of this invention to read information out of the memory.
It is another object of this invention to recognize packet headers received from processors.
As noted above, in a modular system, the incoming packet is received from a particular incoming channel in a particular module and is directed to an outgoing channel of an output module. The header of the packet therefore contains the old (or incoming) module number and the old channel number and these numbers are used to access new module and channel numbers. Thus, the old header numbers define a "virtual" address in the memory which has to be converted to the corresponding actual or physical address.
It is therefore a further object to convert a two-number virtual address to a physical address.